package com.atguigu.mapper;

import com.atguigu.pojo.User;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @version 1.0
 * @Author 马冰
 * @Date 2024/12/25 13:59
 * @注释
 */
@Mapper
public interface UserMapper {

    /**
     * 查询所有数据为实例类类型的List集合
     * @return
     */
    List<User> findAllUser();

    /**
     * 查询一条数据为实体类类型的对象
     * @param id
     * @return
     */
    User findUserById(Integer id);

    /**
     * 查询用户信息的总条数
     * @return
     */
    Integer selectCount();

    /**
     * 查询一条信息为Map集合
     * @param id
     * @return
     */
    Map<String, Object> findUserByIdToMap(Integer id);

    /**
     * 查询所有用户信息为一个大的Map集合,必须使用@MapKey("")
     * @return
     */
    @MapKey("id")
    Map<String, Object> findAllUserToMap();

    /**
     * 查询所有用户信息为一个Map类型的List集合
     * @return
     */
    List<Map<String, Object>> findAllUserToMapList();

    /**
     * 新增员工信息
     * @param user
     */
    void insertUser(User user);

    /**
     * 根据id删除对应的用户信息
     * @param id
     */
    void deleteUserById(Integer id);

    /**
     * 修改员工信息
     * @param username
     * @param password
     */
    void updateUserByUsername(String username, String password);

}
